#ifndef CANVAS_H_INCLUDED
#define CANVAS_H_INCLUDED

#include "blendmodes.h"
#include "pixmap.h"

namespace axelynx
{
    class Canvas
    {
        public:
        virtual void Clear() = 0;
        virtual void ClearColor(unsigned char red,unsigned char green,unsigned char blue) =0;
        virtual void ClearColor(unsigned char red,unsigned char green,unsigned char blue,unsigned char alpha) =0;
        virtual void Color(unsigned char red,unsigned char green,unsigned char blue) =0;
        virtual void Color(unsigned char red,unsigned char green,unsigned char blue,unsigned char alpha) =0;
        virtual void BlendMode(axelynx::BlendMode bm) =0;
        virtual axelynx::BlendMode GetCurrentBlend() =0;

        virtual axelynx::PixMap* ToPixMap() =0;

        virtual void Line(int x1,int y1, int x2, int y2) =0;
        virtual void ThikLine(int x1,int y1, int x2, int y2,int width) =0;

        virtual void Plot(int x, int y) =0;
        virtual void Plot(int x, int y, unsigned char r, unsigned char g, unsigned char b, unsigned char a) =0;

        virtual void Rect(int left,int top,int width,int height) =0;
        virtual void Oval(int x,int y, int vradius, int hradius) =0;
        virtual void VoidRect(int left,int top,int width,int height) =0;
        virtual void VoidOval(int x,int y, int vradius, int hradius) =0;
    };
}

#endif // CANVAS_H_INCLUDED
